package com.share.test.two;


import java.lang.management.ManagementFactory;

import javax.management.JMException;
import javax.management.MBeanServer;
import javax.management.ObjectName;

import com.share.test.one.Hello;
import com.sun.jdmk.comm.HtmlAdaptorServer;

/**
 * 我们访问地址：http://localhost:8082，点击name=hello：
 * 
1、在这里创建一个AdaptorServer，这个类将决定MBean的管理界面，这里用最普通的Html型界面。AdaptorServer其实也是一个MBean。 
2、我们可以看到这个工具页，其实与我们上一个案例中的Jconsole中的管理界面类似，都可以操作资源中的属性和方法。

ObjectName中的取名是有一定规范的，格式为：“域名：name=MBean名称”
其中域名和MBean的名称可以任意取。这样定义后，就可以唯一标识我们定义的这个MBean的实现类了。
 */
public class HelloAgent {
    public static void main(String[] args) throws JMException, Exception {
         MBeanServer server = ManagementFactory.getPlatformMBeanServer();
         ObjectName helloName = new ObjectName("jmxBean:name=hello");
         //create mbean and register mbean
         server.registerMBean(new Hello(), helloName);
         
         ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8082");   
         HtmlAdaptorServer adapter = new HtmlAdaptorServer(); 
         //daptorServer其实也是一个MBean
         server.registerMBean(adapter, adapterName);  
         adapter.start();
    }
}
